La funzione `strtotime` in PHP è utilizzata per convertire una stringa contenente una data in un timestamp Unix, che è un valore che rappresenta il numero di secondi trascorsi dal 1º gennaio 1970 (nota come l’epoca Unix). Questa funzione è estremamente utile quando si lavora con date e ore, poiché permette di trasformare una varietà di formati di data testuali in un formato numerico facilitando i calcoli e le manipolazioni temporali.
L’utilizzo base della funzione è relativamente semplice. Si passa una stringa di data come argomento a `strtotime`, e la funzione restituirà il timestamp Unix corrispondente. Ecco un esempio:
```
$timestamp = strtotime(“2023-10-10”);
echo $timestamp;
```
Nell’esempio sopra, la stringa “2023-10-10” viene convertita in un timestamp Unix. Questo sarà un numero, come ad esempio `1696905600`, che rappresenta il numero di secondi dal 1º gennaio 1970 fino alla data specificata.
La funzione `strtotime` supporta una vasta gamma di formati di data. Alcuni esempi di formati accettati includono:
- Date standard come “2023-12-31” o “31 December 2023”.
- Espressioni relative come “next Monday”, “last year”, “tomorrow”, “now”, e così via.
- Date e ore combinate come “2023-12-31 14:30:00”.
Esempi pratici:
```
echo strtotime(“next Monday”); // Restituisce il timestamp per il prossimo lunedì
echo strtotime(“last year”); // Restituisce il timestamp per lo stesso giorno dell’anno precedente
echo strtotime(“tomorrow”); // Restituisce il timestamp per domani
echo strtotime(“2023-10-10 14:30:00”); // Restituisce il timestamp per il 10 ottobre 2023 alle 14:30
```
È importante notare che `strtotime` prende in considerazione il fuso orario impostato nel file di configurazione `php.ini` o tramite la funzione `date_default_timezone_set()`.
```
date_default_timezone_set(‘Europe/Rome’);
echo strtotime(“2023-10-10 14:30:00”);
```
Nel codice sopra riportato, l’orario sarà interpretato nel fuso orario di Roma.
Se la stringa fornita non è valida o non può essere interpretata come una data, `strtotime` restituirà `false`.
```
$result = strtotime(“invalid date string”);
if ($result === false) {
echo “La data fornita non è valida.”;
}
```
Un uso più complesso potrebbe coinvolgere la manipolazione di date relative e calcoli temporali:
```
$startDate = strtotime(“first day of January 2023”);
$endDate = strtotime(“last day of December 2023”);
$difference = $endDate – $startDate;
echo “Differenza in giorni: “ . ($difference / (60 * 60 * 24));
```
In questo esempio, si calcola la differenza in giorni tra il primo giorno di gennaio 2023 e l’ultimo giorno di dicembre 2023.
- [PHP Manual: `strtotime`](https://www.php.net/manual/en/function.strtotime.php)
- [W3Schools: PHP Date/Time Reference](https://www.w3schools.com/php/php_ref_date.asp)
Queste fonti forniscono informazioni dettagliate su come utilizzare `strtotime`, inclusi esempi e una spiegazione completa dei formati di data supportati.